fastlane match
背景
コード署名は必要なものなのだけど、チーム開発におけるコード署名周りの管理は非常に手間がかかる。
新メンバーが追加された時
チームに新メンバーが増えた時、新規メンバーは以下を実施する必要がある。
2. 新メンバーは、作成した CSR を Account Center にアップロードする これは最初の一回だけだけど、手順が多いし、特に手順 4, 5 は権利者と連携して作業する必要がある。複数のメンバーが増えたら、権利者は複数のメンバー分作業が必要になる。
新しい端末が追加された時
fastlane match
概要
前準備
以下を準備する必要がある。
証明書情報を格納する GitHub Private Repository
実は S3 などのクラウドストレージもサポートしている
ロール が App Manager 以上の Apple Developer アカウント App ID
fastlane match を利用すると、成果物として MatchFile が出来上がる。ここに証明書のアップロード先のリポジトリの情報などの設定項目が諸々記述される。この時、fastlane match を実行する場所として、match で証明書を管理する対象の Xcode プロジェクト直下で行うこともできるし、Xcode プロジェクトから独立したリポジトリを個別に作って (証明書をアップロードするディレクトリとは別)、そこで fastlane match を実行することもできる。 fastlane match の利用を開始する手軽な方法は、fastlane match init を実行することである。これを実行すると対話形式で必要な情報を入力することができ、入力結果を含んだ Matchfile が fastlane ディレクトリ配下に生成される。 Matchfile には init コマンド時に指定した設定値... 例えば、Git リポジトリを使う場合はその情報など、が記載されている。この他にも様々なオプションを記載することができる。ここに記載できるオプションは、同時に fastlane match コマンドに直接オプションとして指定することもできるようになっている。そのため、Matchfile 内に記載できる項目一覧を知りたければ fastlane match --help でヘルプを確認すると良い。 code:MatchFile
storage_mode("git")
type("development")
よく使いそうなオプションは以下。
table:MatchFile
オプション 概要
git_url matchで生成した証明書等を配置するリポジトリのURL
git_branch matchで生成した証明書等を配置するリポジトリのブランチ。デフォルトではmasterになる
app_identifier 証明書等を生成する対象のアプリのBundle Identifier。カンマ区切りで複数指定できる
証明書等の生成/更新 (権利者のやること)
appstore
adhoc
development
enterprise
developer_id
code:console
$ fastlane match development
$ fastlane match appstore
証明書等の取得 (メンバーのやること)
code:console
$ fastlane match development --readonly
$ fastlane match apps --reaonly
Tips
SSHのパスフレーズ入力が必要でちょっとハマった
SSH アクセスを利用していて、かつパスフレーズが設定されている場合、git clone が止まってしまう問題がある。解決策は以下のような感じ。
参考